package cn.jiyun.controller;

import cn.jiyun.service.IUserService;
import cn.jiyun.model.pojo.User;
import cn.jiyun.model.query.UserQuery;
import cn.jiyun.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 【-User】操作接口
 *
 * @author
 * @since 2024-12-18
 */
@RestController
@RequestMapping("/api/admin/user")
@Api(tags = "操作接口")
@Slf4j
public class UserController {

    @Autowired
    public IUserService userService;

    /**
     * 接口：添加
     * @param user 要添加的
     * @return Result 响应给前端
     */
//    @PostMapping
//    @ApiOperation("添加" )
//    public Result save(@RequestBody User user) {
//        userService.save(user);
//        return Result.ok();
//    }

    /**
     * 接口：根据Id删除
     * @param id 的Id
     * @return Result 响应给前端
     */
//    @DeleteMapping("/remove/{id}")
//    @ApiOperation("根据Id删除")
//    public Result remove(@PathVariable("id" ) Long id) {
//        userService.removeById(id);
//        return Result.ok();
//    }

    /**
     * 接口：修改
     * @param user 要修改的数据
     * @return Result 响应给前端
     */
    @PutMapping("update")
    @ApiOperation("修改")
    public Result updateById(@RequestBody User user) {
        System.out.println(user);
        userService.updateById(user);
        return Result.ok();
    }


    /**
      * 根据Id查询单个
     */
//    @GetMapping("/get/{id}")
//    @ApiOperation("根据Id查询单个")
//    public Result getById(@PathVariable Long id)  {
//        User one = userService.getById(id);
//        return Result.ok(one);
//    }

    /**
     * 接口：查询所有
     */
//    @GetMapping
//    @ApiOperation("查询所有")
//    public Result getList() {
//        List<User> listAll = userService.list();
//        return Result.ok(listAll);
//    }


    /**
     * 接口：分页查询所有
     * @return List<User> 所有数据
     */
//    @GetMapping("/{page}/{limit}")
//    @ApiOperation("获取所有")
//    public Result getPageList(@PathVariable Integer page, @PathVariable Integer limit, UserQuery query) {
//        //封装分页参数
//        query.setCurrentPage(page);
//        query.setPageSize(limit);
//        //查询分页数据
//        IPage<User> pageList = userService.getPageList(query);
//        return Result.ok(pageList);
//    }

    /*
     * 接口：查询当前账号的优惠卷
     */
    @GetMapping("/getCoupon/{id}")
    @ApiOperation("查询当前账号的优惠卷")
    public Result getCoupon(@PathVariable("id") Long id) {
        List<User> list = userService.getCoupon(id);
        log.info("list:{}"+list);
        return Result.ok(list);
    }
    @GetMapping("/getCountCoupon/{id}")
    @ApiOperation("查询当前账号的优惠卷个数")
    public Result getCountCoupon(@PathVariable Long id) {
        int list = userService.getCountCoupon(id);
        return Result.ok(list);
    }
    @PostMapping("/updatMoney/{id}/{money}")
    @ApiOperation("充值金额")
    public Result updateMoney(@PathVariable Integer id,@PathVariable Integer money) {
        Integer i = userService.updateMonuey(id, money);
        return Result.ok(i);
    }
    @PostMapping("/UpdatePrice")
    @ApiOperation("修改价格")
    public Result updatePrice(@RequestBody User user) {
        userService.updatePrice(user);
        return Result.ok();
    }
}
